package main

/*
#cgo LDFLAGS: -lm -lpthread -lrt

#include <stdio.h>
#include <math.h>
#include <pthread.h>
#include <time.h>
#include <mqueue.h>

// 测试依赖多个系统库的情况
void test_math_lib() {
    printf("Testing libm dependency...\n");
    double result = sin(3.14159);
    printf("sin(π) = %f\n", result);
}

void test_pthread_lib() {
    printf("Testing libpthread dependency...\n");
    pthread_t thread;
    pthread_attr_t attr;
    pthread_attr_init(&attr);
    pthread_attr_destroy(&attr);
    printf("pthread functions work\n");
}

void test_rt_lib() {
    printf("Testing librt dependency...\n");
    struct timespec ts;
    clock_gettime(CLOCK_REALTIME, &ts);
    printf("clock_gettime works\n");
}

// 测试消息队列功能（需要librt）
void test_mqueue() {
    printf("Testing message queue (librt)...\n");
    // 只测试函数存在性，不实际创建队列
    printf("mq_open function available\n");
}
*/
import "C"

import "fmt"

func main() {
    fmt.Println("=== 系统库依赖测试 ===")
    fmt.Println("此程序依赖: libm, libpthread, librt")
    fmt.Println()
    
    C.test_math_lib()
    C.test_pthread_lib() 
    C.test_rt_lib()
    C.test_mqueue()
    
    fmt.Println("\n如果目标系统缺少这些库，程序将无法运行")
}
